// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
//
// ███╗   ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
// ████╗  ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
// ██╔██╗ ██║██║   ██║   ██║   ██║██║     █████╗
// ██║╚██╗██║██║   ██║   ██║   ██║██║     ██╔══╝
// ██║ ╚████║╚██████╔╝   ██║   ██║╚██████╗███████╗
// ╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝ ╚═════╝╚══════╝
// ------------------------------------------------
//
// This file is automatically generated.
// Please do not edit these files manually.
//
// ------------------------------------------------

#nullable restore

using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace Elastic.Clients.Elasticsearch.MachineLearning;

public sealed partial class Hyperparameter
{
	/// <summary>
	/// <para>A positive number showing how much the parameter influences the variation of the loss function. For hyperparameters with values that are not specified by the user but tuned during hyperparameter optimization.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("absolute_importance")]
	public double? AbsoluteImportance { get; init; }

	/// <summary>
	/// <para>Name of the hyperparameter.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("name")]
	public string Name { get; init; }

	/// <summary>
	/// <para>A number between 0 and 1 showing the proportion of influence on the variation of the loss function among all tuned hyperparameters. For hyperparameters with values that are not specified by the user but tuned during hyperparameter optimization.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("relative_importance")]
	public double? RelativeImportance { get; init; }

	/// <summary>
	/// <para>Indicates if the hyperparameter is specified by the user (true) or optimized (false).</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("supplied")]
	public bool Supplied { get; init; }

	/// <summary>
	/// <para>The value of the hyperparameter, either optimized or specified by the user.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("value")]
	public double Value { get; init; }
}